查看原文
其他

又一个新项目完结,炸裂!

鱼皮 程序员鱼皮 2024-01-21

大家好,我是鱼皮。

经过了总时长超过 30 小时的直播,我在 自己的编程导航 的第 6 个 全程直播开发 的微服务项目 ——  鱼 OJ 在线判题系统,完结啦!

实话说,带大家做这个项目的确把我累的够呛。

因为我带大家做的每个项目都是全程直播的 保姆级教程 ,每一行代码都是直播带大家写的、每一个坑都是直播带大家踩的,大家跟着做就完事了。相比于网上很多所谓大而全的文字项目教程,大家学习上的卡点会更少。

真心换真心,我的付出也得到了很多同学的认可:

所以鱼皮对这次的新项目做一个分享和总结,希望让更多需要它的同学看到,把它变成自己的项目~

文末有加入学习方式

项目简介

这次带做的是一个让很多同学 “望而生畏” 的硬项目, 基于 Vue 3 + Spring Boot + Spring Cloud 微服务 + Docker 的 编程题目在线评测系统 (简称 OJ)。

在系统前台,管理员可以创建、管理题目;用户可以自由搜索题目、阅读题目、编写并提交代码。

在系统后端,能够根据管理员设定的题目测试用例在 代码沙箱 中对代码进行编译、运行、判断输出是否正确。

其中,代码沙箱可以作为独立服务,提供给其他开发者使用。

题目搜索页面:

在线做题页面,支持代码编辑器、代码高亮:

题目提交列表页面:

创建题目页面,包含 Markdown 富文本编辑器、动态增删测试用例:

项目业务流程图:

感兴趣的同学可以 免费试看 第一期项目回放:https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd

为什么带大家做这个项目?

  1. 资料少:OJ 系统网上几乎找不到教程
  2. 比较新颖,有亮点、有区分度(人家写外卖,你写 OJ)
  3. 能学到东西:能够学到很多传统 CRUD 开发外的知识点和编程思想
  4. 复杂度 “高”:很多同学觉得 OJ 是个很复杂的项目,一起攻克它
  5. 可扩展性强,有很多区别于 CRUD 的功能可做

项目特点和收获

该项目选题非常 新颖 ,不同于泛滥的管理系统、博客、商城,不同于只有增删改查的业务系统,本项目会基于 Docker 虚拟化技术 + 多种设计模式 ,从 0 开始手把手带大家实现一个安全的、可复用的 代码沙箱 ,并通过 微服务架构 实现一个可扩展的在线判题系统。

鱼皮 从 0 到 1 全程直播无剪辑 地带大家开发完成项目,总课程时长超 30 小时 !从需求分析、技术选型、系统设计、项目初始化、前后端开发,每个环节我都 从理论到实践 给大家讲的明明白白、每个细节都不放过!

鱼皮给大家讲的都是通用的项目开发方法和架构设计套路,从这个项目中你可以学到:

  • 如何从设计到开发一套完整系统?
  • 如何在应用中使用 Docker 隔离程序?
  • 如何从 0 打造前端项目模板?
  • 单体项目如何改造为微服务?
  • 如何保证用户执行代码的安全?
  • 如何使用消息队列解耦程序?
  • 如何巧妙利用设计模式来优化代码?

此外,还能学会很多作图、思考问题、对比方案的方法,提升排查问题、自主解决 Bug 的能力。

值得一提的是,我带大家做这个项目的过程是先做完单体项目、再改造为微服务,所以哪怕你还没接触过微服务、或者时间紧急,也可以分阶段来学习~ 而且学完这个操作后,你的任何单机项目都可以升级成微服务了,不用再单独做一个微服务新项目,大幅节省时间。

本项目适合的同学

本项目同时适合前端和后端,是一套完整的全栈项目。

如果你是后端,已经学习过 Java Web 开发技术,希望做一个新颖的、有亮点的、写在简历上加分的项目,学习 OJ 系统的设计实现、微服务项目的设计实现、Docker 技术的实战运用、设计模式的实战运用、提升自己的编程和架构设计能力,那么非常欢迎来学习!

如果你是前端,最好已经学习过 Vue 或 React 框架,可以通过本项目学习到快速开发前端项目的技巧、自主编写一套前端通用模板的方法。

再介绍下这个项目用到的技术。

技术选型(全栈项目)

这次不仅用到了主流的技术,还包含了一些大家可能都没听说过的技术~

前端

  • Vue 3
  • Vue-CLI 脚手架
  • Vuex 状态管理
  • Arco Design 组件库
  • 前端工程化:ESLint + Prettier + TypeScript
  • ⭐️ 手写前端项目模板(通用布局、权限管理、状态管理、菜单生成)
  • ⭐️ Markdown 富文本编辑器
  • ⭐️ Monaco Editor 代码编辑器
  • ⭐️ OpenAPI 前端代码生成

后端

  • ⭐️ Java Spring Cloud + Spring Cloud Alibaba 微服务

    • Nacos 注册中心
    • OpenFeign 客户端调用
    • GateWay 网关
    • 聚合接口文档
  • Java Spring Boot(万用后端模板)

  • Java 进程控制

  • ⭐️ Java 安全管理器

  • ⭐️ Docker 代码沙箱实现

  • ⭐️ 虚拟机 + 远程开发

  • MySQL 数据库

  • MyBatis-Plus 及 MyBatis X 自动生成

  • Redis 分布式 Session

  • ⭐️ RabbitMQ 消息队列

  • ⭐️ 多种设计模式

    • 策略模式
    • 工厂模式
    • 模板方法模式
  • 其他:部分并发编程、JVM 小知识

再列举下项目的大纲,只是部分关键环节。此外,直播过程中还讲了很多平时大家自己看视频根本学不到的做项目经验和编码技巧,比如:如何自定义代码模板、规范的前后端开发流程、代码抽象复用的小技巧等。

项目大纲

这个项目内容非常多,大家可以看看有没有自己想学的知识点。

第一章:项目诞生

  1. 项目介绍 | OJ 系统常用概念
  2. 项目介绍 | 企业项目开发流程
  3. 项目介绍 | 主流 OJ 系统调研
  4. 项目介绍 | 核心实现模块介绍
  5. 项目介绍 | 核心业务流程(2 种作图)
  6. 项目介绍 | 系统功能梳理
  7. 项目介绍 | 技术选型
  8. 项目介绍 | 系统架构设计(架构设计图)
  9. OJ 系统实现方案(5 种方案讲解)
  10. 前端项目初始化 | Vue-CLI 初始项目搭建
  11. 前端项目初始化 | 组件库引入
  12. 前端项目初始化 | 项目通用布局开发及优化
  13. 前端项目初始化 | 全局状态管理
  14. 前端项目初始化 | 全局权限管理
  15. 前端项目初始化 | 通用菜单组件开发
  16. 前端项目初始化 | 全局项目入口
  17. 前端项目初始化 | 多套布局支持
  18. 后端项目初始化(Spring Boot 万用模板讲解)
  19. 前后端联调 | 用户登录页面开发
  20. 前后端联调 | 前端请求代码生成
  21. 前后端联调 | 用户自动登录

第二章:单体项目开发

  1. 后端接口开发 | 库表设计
  2. 后端接口开发 | 数据库索引知识
  3. 后端接口开发 | 后端开发流程讲解
  4. 后端接口开发 | 代码自动生成
  5. 后端接口开发 | 开发题目相关接口
  6. 前端页面开发 | 整合 Markdown 编辑器
  7. 前端页面开发 | 整合 Monaco Editor 代码编辑器
  8. 前端页面开发 | 题目页面开发(自定义代码模板)
  9. 前端页面开发 | 题目管理页面开发
  10. 前端页面开发 | 题目更新页面开发
  11. 前端页面开发 | 题目列表搜索页面开发
  12. 前端页面开发 | 在线做题页面开发
  13. 判题机架构 | 判题机模块划分
  14. 判题机架构 | 判题服务开发
  15. 判题机架构 | 策略模式优化

第三章:代码沙箱实现

  1. 代码沙箱 Java 原生实现 | 执行原理
  2. 代码沙箱 Java 原生实现 | 核心流程开发
  3. 代码沙箱 Java 原生实现 | Java 程序漏洞讲解(6 种)
  4. Java 程序安全控制 | 超时控制
  5. Java 程序安全控制 | 资源控制
  6. Java 程序安全控制 | 权限控制
  7. Java 程序安全控制 | 安全管理器
  8. Java 程序安全控制 | 环境隔离
  9. Docker 从入门到实战 | Docker 入门讲解
  10. Docker 从入门到实战 | 虚拟机 + 远程开发环境搭建
  11. Docker 从入门到实战 | Docker 命令实操
  12. Docker 从入门到实战 | Java 操作 Docker
  13. 代码沙箱 Docker 实现 | 核心流程实现
  14. 代码沙箱 Docker 实现 | Docker 容器安全性
  15. 代码沙箱优化 | 模板方法模式
  16. 代码沙箱开放 API(API 安全性)

第四章:项目微服务化

  1. 微服务入门 | 基本概念
  2. 微服务入门 | 微服务实现技术
  3. 微服务入门 | Spring Cloud Alibaba 入门
  4. 微服务改造 | Redis Session 分布式登录
  5. 微服务改造 | 服务划分
  6. 微服务改造 | 路由划分
  7. 微服务改造 | Nacos 注册中心
  8. 微服务改造 | Maven 子父工程生成
  9. 微服务改造 | 代码依赖同步
  10. 微服务改造 | Open Feign 服务内部调用
  11. Gateway 微服务网关 | 接口路由
  12. Gateway 微服务网关 | 聚合文档
  13. Gateway 微服务网关 | 跨域解决
  14. Gateway 微服务网关 | 权限校验
  15. 消息队列解耦 | RabbitMQ 项目异步化改造

项目资料

除了项目教程视频之外,鱼皮还提供了其他的服务,保证大家都能做出这个项目,并且直接写到简历上加分!

包括:

  • 详细的直播笔记
  • 完整的项目源码
  • 1 对 1 答疑解惑
  • 专属项目交流群
  • ⭐️ 现成的简历写法(直接写满简历)
  • ⭐️ 项目的扩展思路(拉开和其他人的差距)
  • ⭐️ 项目相关面试题(提前准备,面试不懵逼)

加入学习

注意,本项目只是《鱼皮原创项目系列教程》的 其中一个 项目,之前已经完结了 5 个全栈项目!

如果大家对鱼皮的原创项目感兴趣,欢迎加入 编程导航知识星球 ,加入后不仅可以学习往期所有的项目,还能够跟着鱼皮后续的直播做新项目。

这样一套微服务项目,如果你在其他平台去单独购买,少说也要几百块了。

新项目完结,限时发放优惠券助力大家学习,大家可以扫下方二维码加入体验,三天内不满意可全额退款 ~

已经有不少小伙伴学起来了,还有很多大家自发整理的笔记。不得不说,做项目真的给了很多同学一个坚持学习的目标,大家的动力也更足了!冲冲冲!

👇🏻 点击下方阅读原文,进一步了解鱼皮原创项目系列教程。

往期推荐

说说我最近筛简历和面试的感受。。

说说我最近招人的感受。。

一个 Github Star 值多少钱?

鱼皮的靶场开源了!

我出手了!

继续滑动看下一个

又一个新项目完结,炸裂!

鱼皮 程序员鱼皮
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存